struct _KLOCK_ENTRY// Size=0x30
{
    struct _RTL_BALANCED_NODE TreeNode;// Offset=0x0 Size=0xc
    struct _SINGLE_LIST_ENTRY FreeListEntry;// Offset=0x0 Size=0x4
    void * ThreadUnsafe;// Offset=0xc Size=0x4
    unsigned char HeadNodeByte;// Offset=0xc Size=0x1
    unsigned char Reserved1[2];// Offset=0xd Size=0x2
    unsigned char AcquiredByte;// Offset=0xf Size=0x1
    struct _KLOCK_ENTRY_LOCK_STATE LockState;// Offset=0x10 Size=0x8
    void * LockUnsafe;// Offset=0x10 Size=0x4
    unsigned char WaitingAndBusyByte;// Offset=0x10 Size=0x1
    unsigned char Reserved[2];// Offset=0x11 Size=0x2
    unsigned char InTreeByte;// Offset=0x13 Size=0x1
    void * SessionState;// Offset=0x14 Size=0x4
    unsigned long SessionId;// Offset=0x14 Size=0x4
    struct _RTL_RB_TREE OwnerTree;// Offset=0x18 Size=0x8
    struct _RTL_RB_TREE WaiterTree;// Offset=0x20 Size=0x8
    char CpuPriorityKey;// Offset=0x18 Size=0x1
    unsigned long EntryLock;// Offset=0x28 Size=0x4
    unsigned short AllBoosts;// Offset=0x2c Size=0x2
    unsigned short IoBoost:1;// Offset=0x2c Size=0x2 BitOffset=0x0 BitSize=0x1
    unsigned short CpuBoostsBitmap:15;// Offset=0x2c Size=0x2 BitOffset=0x1 BitSize=0xf
    unsigned short IoNormalPriorityWaiterCount:15;// Offset=0x2e Size=0x2 BitOffset=0x0 BitSize=0xf
    unsigned short IoPriorityBit:1;// Offset=0x2e Size=0x2 BitOffset=0xf BitSize=0x1
};